import React from 'react';
import Taro from '@tarojs/taro';

import * as T from '../types';
import actions from '../actions/index';
import { connect } from 'react-redux';
import { store2Props } from '../selectors';
type IInfoProps = T.IProps & T.IInfoProps;

import PasswordInput from '@/pages/common/password-input-value';
import SendCode from '@/pages/common/send-code';
import { Text, View, Image, ScrollView, Input } from '@tarojs/components';
import './Selecteds.less';
import FormSelect from '@/pages/common/form-select';
import { AtActionSheet } from 'taro-ui';
import "taro-ui/dist/style/components/action-sheet.scss";
import close from './img/close.png'
import toChooseBtn from './img/toChooseBtn.png'
import toChooseBtn2 from './img/toChooseBtn2.png'
import btn from './img/btn.png';
import down from './img/down.png';
import demobtn from './img/demobtn.png';
import nextdis from './img/next-dis.png';
import right from './img/right.png';
import next from './img/next.png';
import ok from './img/ok.png';
import okdis from './img/ok-dis.png';
import dayjs from 'dayjs';
import { debounce } from 'lodash';

const mockTime = [
  {
    "id": "1",
    "name": "00:00～01:00"
  },
  {
    "id": "2",
    "name": "01:00～02:00"
  },
  {
    "id": "3",
    "name": "02:00～03:00"
  },
  {
    "id": "4",
    "name": "03:00～04:00"
  },
  {
    "id": "5",
    "name": "04:00～05:00"
  },
  {
    "id": "6",
    "name": "05:00～06:00"
  },
  {
    "id": "7",
    "name": "06:00～07:00"
  },
  {
    "id": "8",
    "name": "07:00～08:00"
  },
  {
    "id": "9",
    "name": "08:00～09:00"
  },
  {
    "id": "10",
    "name": "09:00～10:00"
  },
  {
    "id": "11",
    "name": "10:00～11:00"
  },
  {
    "id": "12",
    "name": "11:00～12:00"
  },
  {
    "id": "13",
    "name": "12:00～13:00"
  },
  {
    "id": "14",
    "name": "13:00～14:00"
  },
  {
    "id": "15",
    "name": "14:00～15:00"
  },
  {
    "id": "16",
    "name": "15:00～16:00"
  },
  {
    "id": "17",
    "name": "16:00～17:00"
  },
  {
    "id": "18",
    "name": "17:00～18:00"
  },
  {
    "id": "19",
    "name": "18:00～19:00"
  },
  {
    "id": "20",
    "name": "19:00～20:00"
  },
  {
    "id": "21",
    "name": "20:00～21:00"
  },
  {
    "id": "22",
    "name": "21:00～22:00"
  },
  {
    "id": "23",
    "name": "22:00～23:00"
  },
  {
    "id": "24",
    "name": "23:00～24:00"
  }
]

// Filter out the expired time ranges
const filteredTimes = () => mockTime.filter(timeRange => {
  // Extract the start hour from the name field
  const startHour = timeRange.name.split('～')[0].slice(0, 2);

  // Check if the current hour is less than the start hour of the time range
  return dayjs().format('HH') <= startHour;
});

const demo = ['【菜鸟驿站】您的包裹已到菜鸟驿站明发城市广场24栋店，请凭取件码1-1-1020取件，如有疑问，详询15651629236。',
  '您的快递包裹985378189251733已投放在明发物业中心，请凭手机号或运单号取件，如有疑问，详询15651629236。']

// @ts-ignore
@connect<Partial<IInfoProps>, T.IInfoState>(store2Props, actions)
export default class ActionSheet extends React.Component<Partial<IInfoProps>, T.IInfoState> {

  render() {
    let {
      main: { showCommunity, community, showCourierStation, courierStation, showDeliveryTime, showRequirements, showSettingPassword, phone, code, showSettingPasswordNext, password, showPasswordPayment, passwordError, showExpenseDetails, basicServiceFee, timeRaise, deliveryFee, rule, showRule, showPointsRule, showUserAgreement },
      actions: { action },
    } = this.props;

    return (
      <>
        {/* 请选择小区 */}
        <AtActionSheet
          isOpened={showCommunity}
          onClose={() => action.commonChange('main.showCommunity', false)}
          onCancel={() => action.commonChange('main.showCommunity', false)}
        >
          <View className='row ai-c mb32'>
            <Text className='title'>请选择小区</Text>
            <Image onClick={() => action.commonChange('main.showCommunity', false)} className="close" src={close} mode="widthFix" />
          </View>

          <ScrollView scrollY className='community-box'>
            {community?.map(item => (<>
              <Text onClick={() => this.handleCommunity(item)} key={item.communityId} className='community-name'>{item.communityName}</Text>
            </>))}
          </ScrollView>
          <View className='ai-c' onClick={() => this.showMap('community')}>
            <Image className="toChooseBtn" src={toChooseBtn} mode="widthFix" />
          </View>
        </AtActionSheet>

        {/* 请选择快递站点 */}
        <AtActionSheet
          isOpened={showCourierStation}
          onClose={() => action.commonChange('main.showCourierStation', false)}
          onCancel={() => action.commonChange('main.showCourierStation', false)}
        >
          <View className='row ai-c mb32'>
            <Text className='title'>请选择快递站点</Text>
            <Image onClick={() => action.commonChange('main.showCourierStation', false)} className="close" src={close} mode="widthFix" />
          </View>
          <ScrollView scrollY className='community-box'>
            {courierStation?.map(item => (<>
              <Text onClick={() => this.handleCourierStation(item)} key={item.courierStationId} className='community-name'>{item.courierStationName}</Text>
            </>))}
          </ScrollView>
          <View className='ai-c' onClick={() => this.showMap('courierStation')}>
            <Image className="toChooseBtn" src={toChooseBtn2} mode="widthFix" />
          </View>
        </AtActionSheet>

        {/* 请选择时间 */}
        <AtActionSheet
          isOpened={showDeliveryTime}
          onClose={() => action.commonChange('main.showDeliveryTime', false)}
          onCancel={() => action.commonChange('main.showDeliveryTime', false)}
        >
          <View className='row ai-c mb32'>
            <Text className='title'>请选择时间</Text>
            <Image onClick={() => action.commonChange('main.showDeliveryTime', false)} className="close" src={close} mode="widthFix" />
          </View>
          <ScrollView scrollY className='community-box'>
            {filteredTimes().map(item => (<>
              <Text onClick={() => this.getTodayInterval(item.id)} key={item.id} className='community-name'>今天   {item.name}</Text>
            </>))}
          </ScrollView>
        </AtActionSheet>

        {/* 费用明细 */}
        <AtActionSheet
          isOpened={showExpenseDetails}
          onClose={() => action.commonChange('main.showExpenseDetails', false)}
          onCancel={() => action.commonChange('main.showExpenseDetails', false)}
        >
          <View className='row ai-c mb32'>
            <Text className='title'>费用明细</Text>
            <Image onClick={() => action.commonChange('main.showExpenseDetails', false)} className="close" src={close} mode="widthFix" />
          </View>

          <View className='row ai-c jc-sb p16'>
            <Text className='detail'>基础服务费</Text>
            <Text className='detail-fee'>{basicServiceFee}积分</Text>
          </View>

          <View className='row ai-c jc-sb p16'>
            <Text className='detail'>时段加价</Text>
            <Text className='detail-fee'>{timeRaise}积分</Text>
          </View>

          <View className='row ai-c p16' style={{ justifyContent: 'center' }} onClick={() => { action.commonChange('main.showExpenseDetails', false); action.commonChange('main.showRule', true) }}>
            <Text className='f12x9'>计价规则</Text>
            <Image className="pricing-rules-icon" src={right} mode="widthFix" />
          </View>

          <View className='props-bottom' style={{ position: 'static', marginBottom: -27 }}>
            <View className='details'>
              <View className='row'>
                <Text className='p1'>配送费</Text>
                <Text className='p2'>积分{deliveryFee || '--'}</Text>
              </View>
              <View className='row ai-c' style={{ justifyContent: 'flex-end' }} onClick={() => action.commonChange('main.showExpenseDetails', false)}>
                <Text className='p3'>查看明细</Text>
                <Image className="p4" src={down} mode="widthFix" />
              </View>
            </View>

            <Image
              className="btn-icon"
              src={btn}
              mode="widthFix"
              onClick={
                debounce(() => this.props.actions.action.releasePoints(), 800)
              }
            />
          </View>
        </AtActionSheet>

        {/* 计价规则 */}
        <AtActionSheet
          isOpened={showRule}
          onClose={() => action.commonChange('main.showRule', false)}
          onCancel={() => action.commonChange('main.showRule', false)}
        >
          <View className='row ai-c mb32'>
            <Text className='title'>计价规则</Text>
            <Image onClick={() => action.commonChange('main.showRule', false)} className="close" src={close} mode="widthFix" />
          </View>
          <ScrollView scrollY className='community-box'>
            <View className='row ai-c jc-sb p16' style={{ paddingBottom: 24 }}>
              <Text className='f16x3'>基础服务费</Text>
              <Text className='detail-fee'>{rule.basicServicePoints}积分</Text>
            </View>
            {/* <View className='row ai-c jc-sb p16'>
              <Text className='f16x3'>距离加价</Text>
              <Text className='f12xorange'>注：里程数不为整数时向上取整</Text>
            </View> */}

            {/* <View className='row ai-c jc-sb p8x16'>
              <Text className='f14x3'>1-3 公里的部分</Text>
              <Text className='f14x3'>每1公里+1元</Text>
            </View>
            <View className='row ai-c jc-sb p8x16'>
              <Text className='f14x3'>1-3 公里的部分</Text>
              <Text className='f14x3'>每1公里+1元</Text>
            </View>
            <View className='row ai-c jc-sb p8x16'>
              <Text className='f14x3'>1-3 公里的部分</Text>
              <Text className='f14x3'>每1公里+1元</Text>
            </View> */}

            <View className='row ai-c jc-sb p16'>
              <Text className='f16x3'>时段加价</Text>
            </View>

            {rule.durationFees?.map(item => (
              <View className='row ai-c jc-sb p8x16'>
                <Text className='f14x3'>{item?.beginHour.substring(0, 5)}-{item?.endHour.substring(0, 5)}</Text>
                <Text className='f14x3'>+{item?.timeIntervalPoints}积分</Text>
              </View>
            ))}
          </ScrollView>
        </AtActionSheet>

        {/* 填写示例 */}
        <AtActionSheet
          isOpened={showRequirements}
          onClose={() => action.commonChange('main.showRequirements', false)}
          onCancel={() => action.commonChange('main.showRequirements', false)}
        >
          <View className='row ai-c mb32'>
            <Text className='title'>填写示例</Text>
            <Image onClick={() => action.commonChange('main.showRequirements', false)} className="close" src={close} mode="widthFix" />
          </View>
          <ScrollView scrollY className='community-box'>

            <View className='row ai-c jc-sb p8x24'>
              <Text className='f14x3' style={{ textAlign: 'justify', lineHeight: '18px' }}>{demo[0]}</Text>
            </View>
            <View style={{ alignItems: 'flex-end', marginBottom: 24, paddingRight: 24 }}>
              <Image className="demobtn" src={demobtn} mode="widthFix" onClick={() => { action.commonChange('main.showRequirements', false); action.commonChange('main.requirements', demo[0]) }} />
            </View>

            <View className='row ai-c jc-sb p8x24'>
              <Text className='f14x3' style={{ textAlign: 'justify', lineHeight: '18px' }}>{demo[1]}</Text>
            </View>
            <View style={{ alignItems: 'flex-end', marginBottom: 24, paddingRight: 24 }}>
              <Image className="demobtn" src={demobtn} mode="widthFix" onClick={() => { action.commonChange('main.showRequirements', false); action.commonChange('main.requirements', demo[1]) }} />
            </View>
          </ScrollView>
        </AtActionSheet>

        {/* 设置支付密码 */}
        <AtActionSheet
          isOpened={showSettingPassword}
          onClose={() => action.commonChange('main.showSettingPassword', false)}
          onCancel={() => action.commonChange('main.showSettingPassword', false)}
        >
          <View className='row ai-c mb32'>
            <Text className='title'>设置支付密码</Text>
            <Image onClick={() => action.commonChange('main.showSettingPassword', false)} className="close" src={close} mode="widthFix" />
          </View>
          <View className='row ai-c p8x16' style={{ marginBottom: 8 }}>
            <Text className='f14x3'>手机号</Text>
            <Text className='f14x3' style={{ marginLeft: 32 }}>{phone}</Text>
          </View>

          <View className='row ai-c p8x16'>
            <Text className='f14x3'>验证码</Text>
            {showSettingPassword && (
              <Input
                style={{ marginLeft: '32px' }}
                className="mess-text"
                value={code}
                maxlength={6}
                type="number"
                placeholder="请输入验证码"
                placeholder-style="color:#999999;"
                onInput={(e) => {
                  action.commonChange('main.code', e.detail.value);
                }}
              />
            )}
            <SendCode
              onClick={async (e) => {
                return await action.sendCode();
              }}
            />
          </View>
          <View className='p8x16' style={{ alignItems: 'flex-start', textAlign: 'left', marginBottom: 8 }}>
            <Text className='f12x9'>提示:</Text>
            <Text className='f12x9'>
              1.为了保障您的账户信息安全，在您变更账户重要信息时，需要对您的身份进行验证。感谢您的理解和支持!
            </Text>
            <Text className='f12x9'>
              2.如出现收不到短信的情况,可能是由于通信网络异常造成，请您稍后重新尝试操作!
            </Text>
          </View>
          <View className='ai-c' onClick={() => action.doNext()}>
            <Image className="next" src={next} mode="widthFix" />
          </View>
        </AtActionSheet >

        {/* 设置支付密码-2 */}
        < AtActionSheet
          isOpened={showSettingPasswordNext}
          onClose={() => action.commonChange('main.showSettingPasswordNext', false)}
          onCancel={() => action.commonChange('main.showSettingPasswordNext', false)}
        >
          <View className='row ai-c mb32'>
            <Text className='title'>设置支付密码</Text>
            <Image onClick={() => action.commonChange('main.showSettingPasswordNext', false)} className="close" src={close} mode="widthFix" />
          </View>
          <View className='row ai-c p8x16' style={{ marginBottom: 8 }}>
            <Text className='f14x3'>请输入支付密码</Text>
          </View>
          <PasswordInput
            style={{ alignItems: 'center' }}
            focus={false}
            value={password}
            getValue={(val) => {
              action.commonChange('main.password', val)
            }}
          />

          <View className='p8x16' style={{ alignItems: 'flex-start', textAlign: 'left', marginBottom: 8 }}>
            <Text className='f12x9'>提示:</Text>
            <Text className='f12x9'>
              1.为了保障您的账户信息安全，在您变更账户重要信息时，需要对您的身份进行验证。感谢您的理解和支持!
            </Text>
            <Text className='f12x9'>
              2.如出现收不到短信的情况,可能是由于通信网络异常造成，请您稍后重新尝试操作!
            </Text>
          </View>
          <View className='ai-c' onClick={() => password?.length === 6 && action.changepwd()}>
            <Image className="next" src={password?.length === 6 ? ok : okdis} mode="widthFix" />
          </View>
        </AtActionSheet >

        {/* 请输入支付密码 */}
        < AtActionSheet
          isOpened={showPasswordPayment}
          onClose={() => action.commonChange('main.showPasswordPayment', false)}
          onCancel={() => action.commonChange('main.showPasswordPayment', false)}
        >
          <View className='row ai-c mb32'>
            <Text className='title'>请输入支付密码</Text>
            <Image onClick={() => action.commonChange('main.showPasswordPayment', false)} className="close" src={close} mode="widthFix" />
          </View>
          <View className='row ai-c p8x16' style={{ marginBottom: 8 }}>
            <Text className='f14x3'>请输入支付密码</Text>
          </View>
          {passwordError && (
            <Text className='f14xred p16' style={{ marginTop: -16 }}>支付密码不正确</Text>
          )}
          <PasswordInput
            style={{ alignItems: 'center' }}
            value={password}
            focus={false}
            getValue={(val) => {
              action.commonChange('main.password', val)
            }}
          />

          {passwordError ? (
            <Text
              className='f14xred p16'
              style={{ color: '#218CFF', marginBottom: 80 }}
              onClick={() => {
                action.commonChange('main.showPasswordPayment', false)
                action.commonChange('main.password', '')
                action.commonChange('main.passwordError', false)
                action.commonChange('main.showSettingPassword', true)
              }}
            >
              忘记密码
            </Text>
          ) : (
            <View style={{ marginBottom: 80 }} />
          )}

          <View className='ai-c' onClick={debounce(() => password?.length === 6 && action.checckPayPwd(), 800)}>
            <Image className="next" src={password?.length === 6 ? ok : okdis} mode="widthFix" />
          </View>
        </AtActionSheet >

        {/* 积分抵扣规则 */}
        <AtActionSheet
          isOpened={showPointsRule}
          onClose={() => action.commonChange('main.showPointsRule', false)}
          onCancel={() => action.commonChange('main.showPointsRule', false)}
        >
          <View className='row ai-c mb32'>
            <Text className='title'>邻里帮送积分使用规则</Text>
            <Image onClick={() => action.commonChange('main.showPointsRule', false)} className="close" src={close} mode="widthFix" />
          </View>

          <View className='p8x16' style={{ alignItems: 'flex-start', textAlign: 'left', marginBottom: 8 }}>
            <Text className='f12x9'>使用条件:</Text>
            <Text className='f12x9'>
              1、积分余额需大于等于订单所需的积分量。
            </Text>
            <Text className='f12x9'>
              2、账户满20积分，可进行抵扣。
            </Text>
          </View>

          <View className='p8x16' style={{ alignItems: 'flex-start', textAlign: 'left', marginBottom: 8 }}>
            <Text className='f12x9'>取消订单说明:</Text>
            <Text className='f12x9'>
              用户取消订单后，下单所消耗的积分将原路返还用户的积分账户。
            </Text>
          </View>
        </AtActionSheet >

        {/* 用户协议 */}
        <AtActionSheet
          isOpened={showUserAgreement}
          onClose={() => action.commonChange('main.showUserAgreement', false)}
          onCancel={() => action.commonChange('main.showUserAgreement', false)}
        >
          <View className='row ai-c mb32'>
            <Text className='title'>代取服务用户协议</Text>
            <Image onClick={() => action.commonChange('main.showUserAgreement', false)} className="close" src={close} mode="widthFix" />
          </View>

          <ScrollView scrollY className='community-box'>
            <View className='p8x16' style={{ alignItems: 'flex-start', textAlign: 'left', marginBottom: 8 }}>
              <Text className='f12x9'>欢迎用户 (以下称“用户”或“您”)与江苏瑞银科技有限公司 (以下称“瑞银”) 共同签署《代取综合服务协议》(下称“本协议”)，并通过瑞智万家使用代取服务!</Text>
            </View>

            <View className='p8x16' style={{ alignItems: 'flex-start', textAlign: 'left', marginBottom: 8 }}>
              <Text className='f12x9'>{`
【审慎阅读】
用户通过瑞智万家使用代取服务，点击同意本协议之前，应当认真阅读本协议。请用户务必审慎阅读、充分理解各条款内容，特别是免除或者限制责任的条款、法律适用和争议解决条款。免除或限制责任的条款。如用户对协议有任何疑问，可向瑞智万家客服 (拨打瑞智万家客服电话:400-857-0222) 咨询。

【签约动作】
当用户进入瑞智万家邻里帮送填写页面，按页面提示填写信息、勾选“我已阅读并同意《代取服务协议》”、点击“发布”，或您以其他方式同意接受本协议，即表示用户已充分阅读、理解并接受本协议的全部内容。阅读本协议的过程中，如果用户不同意本协议或其中任何条款约定，用户应立即停止使用瑞智万家邻里帮送服务。

【提示条款】
本协议中的标题仅为方便阅读而设，不影响本协议中任何条款的含义或解释。为维护您的权益，建议您仔细阅读各条款具体表述。

一、定义
1.1瑞智万家邻里帮送服务:由瑞智万家为用户提供集发布配送信息服务和提供软件技术支持服务、邻里帮送送货上门服务履约服务等综合性服务。
1.1.1邻里帮送信息技术系统:即支持用户在线填写/确认邻里帮送服务订单信息、查看服务使用规则、查看价格及服务优惠活动信息、订单交易管理、订单信息管理、订单服务咨询、寻求客诉处理支持的信息技术系统以及接单系统操作工具，具体系统支持的产品功能以系统页面显示为准。邻里帮送用户端信息技术系统的下单/接单方式为：瑞智万家小程序自行开发并运营的下单页面。
1.2邻里帮送服务:用户在下单页面填写订单信息并点击发布后，瑞智万家以技术手段为用户寻求取件人员，一经取件人员接单，瑞智万家将向用户回传并展示服务信息。取件人员将按照发布订单信息中约定的送达上门时间到达用户指定的送件地址，进行物品交付和同步物流详情信息。
1.3接单服务:邻里帮送服务信息匹配成功后，订单详情页将回传并显示取件人员信息以及服务进度。

二、瑞银为用户提供的服务
2.1瑞银通过瑞智万家邻里帮送服务为用户提供邻里帮送综合服务。用户可以使用瑞智万家邻里帮送信息技术系统页面填写订单信息、选择期望的上门时间、在线预估服务费、提交订单信息、承接订单等。为持续改善用户体验，瑞银有权不定期调整邻里帮送信息技术系统页面的产品和服务，具体以页面显示的产品和服务为准。
2.2用户充分理解并同意，即便瑞银提供邻里帮送综合服务并统一对用户负责，但线下履约实际由取件人员提供服务，瑞银并未实际参与线下的服务履约且不承担因线下服务履约造成的任何责任。
2.3为提升用户服务体验，如用户希望知晓具体的取件人员，瑞智万家支持用户可通过服务页面公示的客服入口或查看回传的订单号寻求客服了解订单详情。如用户对取件人员提供的服务有任何问题，均可通过瑞智万家服务页面公示的客服入口寻求帮助。
2.4瑞智万家提供邻里帮送综合服务，并不意味着瑞智万家同意对取件人员的任何行为承担责任。瑞智万家对用户承担邻里帮送综合服务的责任范围仅限通过瑞智万家邻里帮送综合服务系统在线下单的订单范围中所列明的服务。若用户未经过瑞智万家系统而是另行单独与取件人员达成的相关服务约定，以用户与其取件人员之间的约定为准。若用户因与取件人员另行约定而发生纠纷需要瑞银提供客服协助的，瑞银可介入协调处理，但瑞银不对取件人员与用户另行达成单独约定所提供的服务承担任何担保和保证、连带责任。

三、服务规则
3.1用户使用瑞智万家邻里帮送信息技术系统下单时，应仔细填写订单信息 (包括小区名称、快递站点、送达时间、送达地点、具体服务需求、收件人联系方式等信息），并保证上述用户填写信息的准确性、有效性、完整性。如因用户填写的下单信息不准确、无效、不完整或者包含违禁字体，导致用户下达的订单无法顺利履行(包括无法按时送货上门、代取后无法送货等)，用户应自行承担全部责任。您发布的订单中不得包含如下物品:
3.1.1枪支 (含仿制品、主要零部件)弹药。包括但不限于:枪支 (含仿制品、主要零部件):如手枪步枪、冲锋枪、防暴枪、气枪、猎枪、运动枪、麻醉注射枪、钢珠枪、催泪枪等，弹药 (含仿制品):如子弹、炸弹、手榴弹、火箭弹、照明弹、燃烧弹、烟幕(雾)弹、信号弹、催泪弹、毒气弹、地雷、手雷、炮弹、火药等。
3.1.2 管制器具。包括但不限于: 管制刀具: 如比首、三棱刮刀、带有自锁装置的弹簧刀 (跳刀) 、其他相类似的单刃、双刃、三棱尖刀等;其他:如弩、催泪器、催泪枪、电击器等。
3.1.3 爆炸物品。包括但不限于: 爆破器材:如炸药、雷管、导火索、导爆索、爆破剂等;烟花爆竹:如烟花、鞭炮、摔炮、拉炮、砸炮、彩药弹等烟花爆竹及黑火药、烟火药、发令纸、引火线等;其他:如推进剂、发射药、硝化棉、电点火头等。
3.1.4 压缩和液化气体及其容器。包括但不限于:易燃气体:如氢气、甲烷、乙烷、丁烷、天然气、液化石油气、乙烯、丙烯、乙快、打火机等;有毒气体:如氧化碳、一氧化氮、氯气等，易爆或者室息、助燃气体:如压缩氧气、氮气、氨气、氛气、气雾剂等。
3.1.5 易燃液体。包括但不限于:汽油、柴油、煤油、桐油、丙酮、乙醚、油漆、生漆、苯、酒精、松香油等。
3.1.6 易燃固体、自燃物质、遇水易燃物质。包括但不限于:易燃固体:如红磷、硫磺、铝粉、闪光粉固体酒精、火柴、活性炭等;自燃物质: 如黄磷、白磷、硝化纤维 (含胶片)、钵粉等;遇水易燃物质:如金属钠、钾、鲤、锌粉、镁粉、碳化钙 (电石)、氰化钠、氰化钾等。
3.1.7 氧化剂和过氧化物。包括但不限于:高锰酸盐、高氯酸盐、氧化氢、过氧化钠、过氧化钾、过氧化铅、氯酸盐、澳酸盐、硝酸盐、双氧水等。
3.1.8 毒性物质。包括但不限于:砷、砒霜、汞化物、铭化物、氰化物、硒粉、苯酚、汞、剧毒农药等.
3.1.9 生化制品、传染性、感染性物质。包括但不限于:病菌、炭疽、寄生虫、排泄物、医疗废弃物、厂骨、动物器官、肢体、未经硝制的兽皮、未经药制的兽骨等。
3.1.10 放射性物质。包括但不限于:铀、钻、镭等。
3.1.11 腐蚀性物质。包括但不限于:硫酸、硝酸、盐酸、蓄电池、氢氧化钠、氢氧化钾等。
3.1.12 毒品及吸毒工具、非正当用途麻醉药品和精神药品、非正当用途的易制毒化学品。包括但不限于:毒品、麻醉药品和精神药品:如鸦片 (包括罂粟壳、花、苞、叶)、吗啡、海洛因、可卡因、大麻、甲基苯丙胺 (冰毒)、氯胺酮、甲卡西酮、苯丙胺、安钠咖等，易制毒化学品:如胡椒醛、黄樟素、黄樟油、麻黄素、伪麻黄素、轻亚胺、邻酮、苯乙酸、澳代苯丙酮、醋酸酥、甲苯、丙酮等，吸毒工具:如冰壶等。
3.1.13 非法出版物、印刷品、音像制品等宣传品。包括但不限于:含有反动、煽动民族仇恨、破坏国家统破坏社会稳定、宣扬邪教、宗教极端思想、淫秽等内容的图书、刊物、图片、照片、音像制品等。
3.1.14 间谍专用器材。包括但不限于:暗藏式窃听器材、窃照器材、突发式收发报机、一次性密码本、密写工具、用于获取情报的电子监听和截收器材等。
3.1.15 非法伪造物品。包括但不限于:伪造或者变造的货币、证件、公章等。
3.1.16 侵犯知识产权和假冒伪劣物品。包括但不限于: 侵犯知识产权: 如侵犯专利权、商标权、著作权的图书、音像制品等;假冒伪劣:如假冒伪劣的食品、药品、儿童用品、电子产品、化妆品、纺织品等.
3.1.17 动物或濒危野生动物及其制品。包括但不限于:猫、狗、象牙、虎骨、犀牛角及其制品等。
3.1.18 禁止进出境物品。包括但不限于:有碍人健康的、来自疫区的以及其他能传播疾病的食品、药品或者其他物品;内容涉及国家秘密的文件、资料及其他物品。
3.1.19 自然人。包括但不限于:刚出生的婴儿、成年人等。
3.1.20 卷烟、雪茄烟、烟丝、烟叶、复烤烟叶、卷烟纸、滤嘴棒、烟用丝束、烟草专用机械等烟草专卖品。
3.1.21 其他物品。《危险化学品目录》、《民用爆炸物品品名表》、《易制爆危险化学品名录》、《易制毒化学品的分类和品种目录》、《中华人民共和国禁止进出境物品表》载明的物品和《人间传染的病原微生物名录》载明的第一、二类病原微生物等，和法律、行政法规、国务院和国务院有关部门规定禁止寄递的其他物品。
3.1.22 您在使用本服务的过程中应遵守国家法律法规及政策规定。
3.1.23其他不宜代购或应由您亲自取货的物品，包括但不限于宠物及其他带有个人主观判断性质的物品同时服务平台有权不予发布或提供关于代遛宠物、购买动物(宠物)、接送孩子 (人)、网吧开机/站位、喂食洗浴宠物、购买处方药、套现、存取现金等非邻里帮送性质的服务需求信息或对相关信息予以删除。
3.2取件人员邻里帮送送货上门后，用户应当通过取件码、瑞智万家页面提示的订单状态等方式，以确保将物品成功完成交付，避免不必要的损失。如核验不一致的，用户有权拒绝收下该物品，否则由此造成的损失由用户本人承担。

四、综合服务费
4.1用户订单的综合配送费 (简称“配送费”)总额受订单中录入的地址、时段等因素影响，系统显示的预估金额是根据用户填写/选择的订单对应的服务预估计算得出，仅供用户下单时参考。
4.2用户理解并同意具体的配送金额根据用户填写的订单信息统一计算得出，最终以瑞智万家邻里帮送信息技术系统推送的支付账单显示应收取的费用金额为准。如用户对费用的计算存在异议的，可通过线上客服入口进行咨询。
4.3为切实保障用户的权益，瑞智万家支持用户使用线上系统支持的支付方式（如积分抵扣、纯积分）支付配送费。取件人员接单所赚取的积分可在【我的】-【我的积分】里查看，可用作商城商品购买、积分抵扣等用途。
4.4用户发起代取贵重物品时，应事先声明。若因用户未事先声明给用户造成损失的，由用户自行承担。
4.5用户须确认代取件的物品合法、合规，不存在任何违反法律、法规规定或侵犯第三方合法权益的情形，否则由此产生的一切后果由用户自行承担。

五、赔付保障
5.1用户通过瑞智万家邻里帮送页面下达订单，且用户与取件人员取件时线下面单与用户填写信息一致的情况下，若因取件人员问题造成物品丢失、物品包装或本身破损，用户可通过服务页面公示的客服入口进行投诉。若投诉成立，瑞银核实后，将由取件人员予以赔偿。取件人员就同一问题如果存在异议可通过服务页面公示的客服入口进行申诉，瑞银具有最终判责权，且瑞银不支持就同一订单重复赔付。

六、 用户通过使用瑞智万家邻里帮送信息技术系统参与相关订单活动或购买瑞智万家提供的相关产品等方式获得的任何与服务相关的优惠权益、补贴，均以瑞智万家发布的相关公告和产品页面、活动页面显示的规则/说明的规定为准。瑞智万家严格禁止用户或第三方以欺诈或其他非正常使用服务 (如利用瑞智万家的系统漏洞)的方式获取瑞智万家给予的各种补贴。用户存在前述行为的，瑞智万家有权限制/注销用户的账号使用资格，并追究用户的法律责任。

七、 用户违反本协议承诺、约定或违反法律法规规定时，瑞银有权做出相应处理，包括但不限于屏蔽、删除用户的订单信息，暂停或终止向用户提供服务，并有权要求用户承担相应的责任 (包括但不限于民事、刑事责任)。

八、瑞智万家的责任承担和免除
8.1瑞银不对因下述情况而导致的任何损害赔偿承担责任，包括但不限于利润、名誉、商誉、使用、数据等方面的损失或其它无形损失的损害赔偿:
A.未使用瑞智万家的服务
B.第三方未经批准地使用用户的账户或更改用户的数据;
C.用户对瑞智万家提供服务的误解；
D.任何非因瑞智万家的原因导致的其它损失。
8.2如因不可抗力或其他瑞智万家无法控制的原因使邻里帮送综合服务系统崩溃或无法正常使用，导致服务无法完成或丢失有关的信息、记录等，瑞智万家不承担责任。但是瑞智万家会尽可能合理地处理善后事宜，并努力使用户免受经济损失。

九、其他约定
9.1本协议内容包括本协议正文及所有瑞智万家已经发布的或将来可能发布的各类规则，所有规则为本协议不可分割的组成部分，与协议正文具有同等法律效力。瑞智万家有权根据国家法律法规的更新、产品和服务规则调整的需要制订、修改本协议或各类规则，并以瑞智万家相关页面进行公示。若无特殊约定，协议自发布之日起生效。如用户继续使用瑞智万家提供的服务，即表示用户接受修订的协议和规则，当用户与瑞智万家发生争议时,应以最新的"条款"为准。
9.2本条款的订立、执行和解释及争议的解决均应适用中国法律。如双方就本条款内容或其执行发生任何争议，双方应尽力友好协商解决，协商不成，任何一方可向江苏瑞银科技有限公司住所地的人民法院提起诉讼。

本协议最终解释权及修订权归江苏瑞银科技有限公司所有。
              `}</Text>
            </View>

          </ScrollView>

        </AtActionSheet >
      </>
    );
  }

  //显示地图
  showMap(whoMotherFuckerOpenTheMap) {
    this.props.actions.action.commonChange('main.whoMotherFuckerOpenTheMap', whoMotherFuckerOpenTheMap)
    //使用在腾讯位置服务申请的key（必填）
    const key = "R3LBZ-J76KL-5JBPR-EQ6ZQ-N7PE5-RMB36";
    //调用插件的app的名称（必填）
    const referer = "瑞智万家";
    Taro.navigateTo({
      url: 'plugin://chooseLocation/index?key=' + key + '&referer=' + referer
    });
  }

  // 选择小区
  handleCommunity(item) {
    this.props.actions.action.commonChange('main.communityId', item.communityId)
    this.props.actions.action.commonChange('main.communityName', item.communityName)
    this.props.actions.action.commonChange('main.communityAddress', item.communityAddress)
    this.props.actions.action.commonChange('main.showCommunity', false)
    this.props.actions.action.commonChange('main.courierStation', item.courierStationVOS)

    // 更改小区清空选择的快递站点数据
    this.props.actions.action.commonChange('main.courierStationId', '')
    this.props.actions.action.commonChange('main.courierStationName', '')
  }

  // 选择快递站点
  handleCourierStation(item) {
    this.props.actions.action.commonChange('main.courierStationId', item.courierStationId)
    this.props.actions.action.commonChange('main.courierStationName', item.courierStationName)
    this.props.actions.action.commonChange('main.showCourierStation', false)
  }


  // 选择送达时间
  getTodayInterval(selectedId) {
    const today = dayjs().startOf('day');
    const selectedTime = mockTime.find(item => item.id === selectedId);

    if (!selectedTime) {
      return null;
    }

    const [startTimeStr, endTimeStr] = selectedTime.name.split('～');
    const [startHour, startMinute] = startTimeStr.trim().split(':').map(Number);
    const [endHour, endMinute] = endTimeStr.trim().split(':').map(Number);

    const startTime = today.add(startHour, 'hour').add(startMinute, 'minute').format('HH:mm:00');
    const endTime = today.add(endHour, 'hour').add(endMinute, 'minute').format('HH:mm:00');
    this.props.actions.action.commonChange('main.startTime', startTime)
    this.props.actions.action.commonChange('main.endTime', endTime)
    this.props.actions.action.commonChange('main.showDeliveryTime', false)
    this.props.actions.action.commonChange('main.selectedTime', selectedTime.name)
    this.props.actions.action.getDeliveryFee(startTime, endTime)
  }
}
